package com.ssy.lingxi.member.merchant.model.vo.maintenance.request;

import com.ssy.lingxi.member.merchant.api.handler.annotation.PhoneAnno;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.List;

/**
 * 会员下属用户操作接口参数VO
 * @author 万宁
 * @version 2.0.0
 * @date 2020-06-29
 */
public class MemberUserUpdateVO implements Serializable {
    private static final long serialVersionUID = 7027223053316182844L;

    /**
     * 用户id
     */
    @NotNull
    @Positive(message = "用户id要大于0")
    private Long userId;

    /**
     * 账号
     */
    @NotBlank(message = "账号不能为空")
    @Size(min = 6, max = 20, message = "账号长度为6-20个字符")
    private String account;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    @Size(max = 16, message = "姓名最长16个字符")
    private String name;

    /**
     * 国家代码（手机号码前缀）
     */
    @NotBlank(message = "国家代码不能为空")
    private String countryCode;

    /**
     * 手机号码
     */
    @NotNull
    @PhoneAnno(message = "手机号码错误")
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 身份证号码
     */
    private String idCardNo;

    /**
     * 职位
     */
    private String jobTitle;

    /**
     * 组织机构菜单的Id
     */
    @NotNull
    @Positive(message = "组织机构菜单id要大于0")
    private Long orgId;

    /**
     * 会员角色id列表
     */
    @NotEmpty(message = "角色不能为空")
    private List<Long> memberRoleIds;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public String getJobTitle() {
        return jobTitle;
    }

    public void setJobTitle(String jobTitle) {
        this.jobTitle = jobTitle;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public List<Long> getMemberRoleIds() {
        return memberRoleIds;
    }

    public void setMemberRoleIds(List<Long> memberRoleIds) {
        this.memberRoleIds = memberRoleIds;
    }
}
